package com.example.log_db.service.impl;

import com.example.log_db.model.LogInfo;
import com.example.log_db.service.LogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * 日志服务实现类
 * 实际项目中可以将日志保存到数据库、文件或其他存储介质
 */
@Slf4j
@Service
public class LogServiceImpl implements LogService {
    
    @Override
    public void saveLog(LogInfo logInfo) {
        // 这里只是简单地将日志打印出来
        // 实际项目中可以将日志保存到数据库或其他存储介质
        log.info("=== 操作日志 ===");
        log.info("操作类型: {}", logInfo.getOperationType());
        log.info("操作描述: {}", logInfo.getDescription());
        log.info("请求方法: {}", logInfo.getMethod());
        log.info("请求路径: {}", logInfo.getRequestUrl());
        log.info("请求参数: {}", logInfo.getRequestParams());
        log.info("返回结果: {}", logInfo.getResponseResult());
        log.info("执行时间: {}ms", logInfo.getExecutionTime());
        log.info("操作人IP: {}", logInfo.getIp());
        log.info("操作人ID: {}", logInfo.getUserId());
        log.info("操作时间: {}", logInfo.getOperateTime());
        if (logInfo.getExceptionMessage() != null) {
            log.info("异常信息: {}", logInfo.getExceptionMessage());
        }
        log.info("================");
    }
}